package com.sc.study.exam.domain;

import com.sc.common.core.domain.entity.SysUser;
import com.sc.study.clazz.domain.ScClazz;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sc.common.annotation.Excel;
import com.sc.common.core.domain.BaseEntity;

import java.util.List;

/**
 * 考试对象 sc_testexam
 *
 * @author sc
 * @date 2022-02-27
 */
public class ScTestexam extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 考试类型 */
    @Excel(name = "考试类型")
    private Long testexamtypeid;

    /** 开始时间 */
    @Excel(name = "开始时间")
    private String starttime;

    /** 结束时间 */
    @Excel(name = "结束时间")
    private String endtime;

    /** 描述 */
    @Excel(name = "描述")
    private String info;

    /** 附件 */
    @Excel(name = "附件")
    private String attachment;

    /** 用户编号 */
    @Excel(name = "用户编号")
    private Long userid;

    /** 考试题目 */
    //考试题目.由于提交的时候有文件，无法序列化集合，所以先string接收
    private String scQuestion;

    /**
     * 参加考试的学生编号
     */
    private String students;

    /**
     * 创建人（老师）
     */
    private SysUser sysUser;

    /**
     * 试卷类型
     */
    private ScTestexamType scTestexamType;

    //查询条件 考试类型
    private String likeTestExamTypeName;

    //查询条件 创建人
    private String likeUsername;

    private Long testid;

    private boolean showUpdateStudentButton = true;

    //参与考试的学生id集合
    private List<Integer> studentIdList;

    //绑定的班级
    private List<ScClazz> clazzList;

    public List<ScClazz> getClazzList() {
        return clazzList;
    }

    public void setClazzList(List<ScClazz> clazzList) {
        this.clazzList = clazzList;
    }

    public List<Integer> getStudentIdList() {
        return studentIdList;
    }

    public void setStudentIdList(List<Integer> studentIdList) {
        this.studentIdList = studentIdList;
    }

    public boolean isShowUpdateStudentButton() {
        return showUpdateStudentButton;
    }

    public void setShowUpdateStudentButton(boolean showUpdateStudentButton) {
        this.showUpdateStudentButton = showUpdateStudentButton;
    }

    public Long getTestid() {
        return testid;
    }

    public void setTestid(Long testid) {
        this.testid = testid;
    }

    public String getLikeTestExamTypeName() {
        return likeTestExamTypeName;
    }

    public void setLikeTestExamTypeName(String likeTestExamTypeName) {
        this.likeTestExamTypeName = likeTestExamTypeName;
    }

    public String getLikeUsername() {
        return likeUsername;
    }

    public void setLikeUsername(String likeUsername) {
        this.likeUsername = likeUsername;
    }

    public ScTestexamType getScTestexamType() {
        return scTestexamType;
    }

    public void setScTestexamType(ScTestexamType scTestexamType) {
        this.scTestexamType = scTestexamType;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public String getStudents() {
        return students;
    }

    public void setStudents(String students) {
        this.students = students;
    }

    public String getScQuestion() {
        return scQuestion;
    }

    public void setScQuestion(String scQuestion) {
        this.scQuestion = scQuestion;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setTestexamtypeid(Long testexamtypeid)
    {
        this.testexamtypeid = testexamtypeid;
    }

    public Long getTestexamtypeid()
    {
        return testexamtypeid;
    }
    public void setStarttime(String starttime)
    {
        this.starttime = starttime;
    }

    public String getStarttime()
    {
        return starttime;
    }
    public void setEndtime(String endtime)
    {
        this.endtime = endtime;
    }

    public String getEndtime()
    {
        return endtime;
    }
    public void setInfo(String info)
    {
        this.info = info;
    }

    public String getInfo()
    {
        return info;
    }
    public void setAttachment(String attachment)
    {
        this.attachment = attachment;
    }

    public String getAttachment()
    {
        return attachment;
    }
    public void setUserid(Long userid)
    {
        this.userid = userid;
    }

    public Long getUserid()
    {
        return userid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("testexamtypeid", getTestexamtypeid())
                .append("createtime", getCreateTime())
                .append("starttime", getStarttime())
                .append("endtime", getEndtime())
                .append("info", getInfo())
                .append("attachment", getAttachment())
                .append("userid", getUserid())
                .toString();
    }
}
